import scala.collection.mutable.{ArrayStack, Map}
object Main {
  def main(args: Array[String]): Unit = {
    println("Hello world!")

    /*
      Scala 强定义类型
      变量声明关键字
      var: 声明变量可变
      val: 声明变量不可变
      使用方式,创造值
        val 变量名:数据类型 = 值
        var 变量名:数据类型 = 值
      数据类型
        " ": 字符串
        ' ': 字符
        Int: 整数类型
        String: 字符串类型
        Boolean: 布尔类型
        Float: 浮点类型
        Double: 浮点类型
        Char: 字符类型
        Unit: 无返回值类型
        Nothing: 空类型
     */
    var a: Int = 1
    val b: Int = 2
    //Scala具有非常强悍的能力:自推导能力
    var c = 3
    //在Scala当中一切皆为对象
    var d = a.equals(b)
    println(d)
    //for if都有返回值
    var x = 0
    if (a == b) {
      println("a=b")
      var x = 1
    }
    else {
      println("a!=b")
      var x = 2
    }

    ///
    var y = if (a == b) {
      println("a=b")
      1
    }
    else {
      println("a!=b")
      2
    }

    for (i <- 1 to 10) {
      println(i)
    }

    for (i <- 1 until 10) {
      println("until for " + i)
    }
    //使用过滤迭代器操作
    //1到10当中，偶数输出
    for (i <- 1 to 10) {
      if (i % 2 == 0) {
        println(s"偶数是: $i")
      }
    }

    /*
    在java中，调用方法，函数:对象，方法(参数)
    在Scala中，一切皆为对象，对象 方法 参数 方法 参数 方法 参数
     */
    for (i <- 1 to 10 if i % 2 == 0) {
      println(s"偶数是: $i")
    }

    var count = 0
    while (count <= 10) {
      count += 1
      println("count的值是：" + count)
    }
    for (i <- 1 to 20 by 5) {
      println("步长为5:" + i)
    }
    //打印九九乘法表

    //    for(i<- 1 to 9 ){
    //      for(j <- 1 to i){
    //        print(j+"*"+i+"="+i*j+"  ")
    //      }
    //      println()
    //    }
    /*
      方法格式
      def 方法名(变量名:变量类型): 返回值类型 = {方法体}
      本质上来说，方法就是一个变量
     */
    def NiceTONice(Tail: Int): Unit = {
      for (i <- 1 to Tail) {
        for (j <- 1 to i) {
          print(s"$i * $j =" + i * j)
        }
        println()
      }

    }
    println(NiceTONice(99))

   val arr1 = new Array[Int](10)
   val arr2 = Array(1,2,3,4,5)
    arr1(1) = 1
  }
}